package com.wande.dataplatform.etl.node;

import java.util.Map;

/**
 * ETL节点接口
 *
 * @author dataplatform
 */
public interface EtlNode {

    /**
     * 节点类型 - 输入
     */
    String INPUT = "input";

    /**
     * 节点类型 - 转换
     */
    String TRANSFORM = "transform";

    /**
     * 节点类型 - 输出
     */
    String OUTPUT = "output";

    /**
     * 执行节点
     *
     * @param context 执行上下文
     * @return 执行结果
     */
    EtlNodeResult execute(EtlContext context);

    /**
     * 获取节点类型
     *
     * @return 节点类型
     */
    String getNodeType();

    /**
     * 验证节点配置
     *
     * @param config 节点配置
     * @return 是否有效
     */
    boolean validate(Map<String, Object> config);
}
